Python - pandas loc vs iloc
目次
この投稿は、Pythonの pandas ライブラリを活用してDataFrameを扱う際に必要な .loc() と .iloc() のそれぞれの特徴と違いを説明するために作成されました。
まず、説明のために seaborn を活用して例のデータ(iris)を取得しましょう。
>>> import seaborn as sns
>>> iris = sns.load_dataset('iris')
>>> iris.head()
1. loc #
locはラベル(Label)を基にデータを選択するメソッドです。行と列の名前を使用してデータにアクセスします。つまり、行と列の名前を明示的に指定してデータを選択します。
# 列名が'species'で、その値が'virginica'であるデータを選択
>>> iris.loc[iris['species'] == 'virginica']
2. iloc #
ilocは整数(Integer)基準のインデックスを使用してデータを選択するメソッドです。行と列の整数の位置(インデックス)を利用してデータにアクセスします。つまり、データの位置を整数で明示して選択します。
# 最初の行と2番目の列にあるデータを選択
>>> iris.iloc[0, 1]
3.5
3. locとilocの違い #
-
インデックスのタイプ:
locはラベル(Label)を使用するため、行と列の名前が文字列や他のデータタイプである可能性があります。
ilocは整数(Integer)を使用するため、行と列のインデックスは整数である必要があります。
-
使用方法:
locは明示的にラベルを使用してデータを選択することに重点を置きます。
ilocは整数位置(インデックス)を使用してデータを選択することに重点を置きます。
-
例:
locの例: df.loc[‘A’, ‘column_name’]
ilocの例: df.iloc[0, 1]
どのメソッドを使用するかは、データフレームの構造やユーザーの目的によって異なります。 locはラベルが明確に定義されている場合に有用であり、 ilocは整数基準のインデックスが使用される場合に有用です。